why public class and filename are same in java